package com.zxy.zxyrpc.model;

import com.zxy.zxyrpc.constant.RpcConstant;
import com.zxy.zxyrpc.fault.tolerant.TolerantStrategyKeys;
import com.zxy.zxyrpc.loadBalancer.LoadBalancerKeys;
import com.zxy.zxyrpc.retry.RetryStrategyKeys;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 服务消费者引用服务信息
 *
 * @author zxy
 * @since 2025/6/14
 **/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ReferenceService {
    /**
     * 服务版本号
     */
    String serviceVersion = RpcConstant.DEFAULT_SERVICE_VERSION;

    /**
     * 负载均衡器
     */
    String loadBalancer = LoadBalancerKeys.ROUND_ROBIN;

    /**
     * 重试策略
     */
    String retryStrategy = RetryStrategyKeys.NO;

    /**
     * 容错策略
     */
    String tolerantStrategy = TolerantStrategyKeys.FAIL_FIST;

    /**
     * 模拟调用
     */
    boolean mock = false;
}
